// let [a,b]=[1,2]
// console.log(a,b);
// let {c,d}={c:3,d:4}
// console.log(c,d);

// let[a,b]={a:1,b:2}


// const arr = [1,2,3]
// const iterator = arr[Symbol.iterator]()
// console.log(iterator.next());
// console.log(iterator.next());
// console.log(iterator.next());
// console.log(iterator.next());


//迭代器协议

// function createIterator(arr){
//     let index = 0
//     return{
//         next: function(){
//             if(index < arr.length){
//                 return {value: arr[index++], done: false }
//             }else{
//                 return {value: undefined, done: true }
//             }
            
//         }
//     }

// }

// const myIterrator = createIterator([1,2,3])
// console.log(myIterrator.next());
// console.log(myIterrator.next());
// console.log(myIterrator.next());
// console.log(myIterrator.next());

// const obj = {
//     a:1,
//     b:2,
//     c:3,
//     [Symbol.iterator]:function(){
//         let index = 0
//         return {
//             next: function(){
//                 if(index < Object.keys(obj).length){
//                     return { value : Object.keys(obj)[index++], done: false }
//                 } else{
//                     return { value : undefined, done: true }
//                 }
                
//             }
//         }
//     }
// }

// for(const key of obj){
//     console.log(key);
// }



Object.prototype[Symbol.iterator] = function(){
    return Object.keys(this)[Symbol.iterator]()
}

let [a,b] = { a:1,b:2}

console.log(a,b) //;


// Object.prototype[Symbol.iterator] = function(){
//         let index = 0
//         return {
//             next: function(){
//                 if(index < Object.keys(this).length){
//                     return { value : Object.keys(this)[index++], done: false }
//                 } else{
//                     return { value : undefined, done: true }
//                 }
               
//             }
//         }
// }

